--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / debug / DebugLogsPage.vue
Displaying Raw • Download
meshchatx/src/frontend/components/debug/DebugLogsPage.vue 8ade296fb16b8f8e145f0c83e97179c456325be3 (8ade296f) Text, 21.98 KB
Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col flex-1 overflow-hidden min-w-0 bg-slate-50 dark:bg-zinc-950"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex flex-col h-full overflow-hidden w-full px-4 md:px-5 lg:px-8 py-6 pb-[max(1.5rem,env(safe-area-inset-bottom))]"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col mb-4 w-full max-w-6xl mx-auto space-y-4 min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-1 min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-xs uppercase tracking-wide text-gray-500 dark:text-gray-400"Tb4b4b4>DiagnosticsTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-2xl sm:text-3xl font-semibold text-gray-900 dark:text-white"Tb4b4b4>Debug LogsTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap gap-2 shrink-0"Tb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3typeTff7b72=Ta5d6ff"button" Te6edf3classTff7b72=Ta5d6ff"secondary-chip px-4 py-2 text-sm" Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3refreshActiveTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"refresh" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Refresh
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3typeTff7b72=Ta5d6ff"button" Te6edf3classTff7b72=Ta5d6ff"primary-chip px-4 py-2 text-sm" Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3copyActiveTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"content-copy" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Copy All
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex flex-nowrap sm:flex-wrap gap-2 border-b border-gray-200 dark:border-zinc-700 pb-2 overflow-x-auto overscroll-x-contain -mx-4 px-4 sm:mx-0 sm:px-0 no-scrollbar"
Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"shrink-0 px-4 py-2 text-sm rounded-md transition-colors"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3activeTab Tff7b72=== Ta5d6ff'logs'
Tff7b72? Ta5d6ff'bg-blue-600 text-white'
Tff7b72: Ta5d6ff'bg-gray-100 dark:bg-zinc-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-zinc-700'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3switchTabTb4b4b4(Ta5d6ff'logs'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"debug.tab_logs"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"shrink-0 px-4 py-2 text-sm rounded-md transition-colors"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3activeTab Tff7b72=== Ta5d6ff'access'
Tff7b72? Ta5d6ff'bg-blue-600 text-white'
Tff7b72: Ta5d6ff'bg-gray-100 dark:bg-zinc-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-zinc-700'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3switchTabTb4b4b4(Ta5d6ff'access'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"debug.tab_access_attempts"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72=== Ta5d6ff'logs'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap gap-3 items-center bg-white/50 dark:bg-zinc-800/50 p-3 rounded-lg border border-gray-200 dark:border-zinc-700"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"relative flex-1 min-w-[200px]"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"magnify" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4 text-gray-400" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3searchTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"block w-full pl-10 pr-3 py-2 border border-gray-300 dark:border-zinc-600 rounded-md leading-5 bg-white dark:bg-zinc-900 text-gray-900 dark:text-white placeholder-gray-500 focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 sm:text-sm"
Tb4b4b4:Te6edf3placeholderTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'debug.search_logs_placeholder'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3inputTff7b72=Ta5d6ff"Te6edf3debouncedSearchTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72select
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3levelTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"block pl-3 pr-10 py-2 text-base border-gray-300 dark:border-zinc-600 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm rounded-md bg-white dark:bg-zinc-900 text-gray-900 dark:text-white"
Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3refreshLogsTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff""Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"debug.level_all"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"DEBUG"Tb4b4b4>DebugTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"INFO"Tb4b4b4>InfoTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"WARNING"Tb4b4b4>WarningTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"ERROR"Tb4b4b4>ErrorTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"CRITICAL"Tb4b4b4>CriticalTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72selectTb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center cursor-pointer"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3is_anomalyTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"checkbox"
Te6edf3classTff7b72=Ta5d6ff"form-checkbox h-4 w-4 text-blue-600 transition duration-150 ease-in-out"
Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3refreshLogsTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"ml-2 text-sm text-gray-700 dark:text-gray-300"Tb4b4b4>Tff7b72{{
Te6edf3$tTb4b4b4(Ta5d6ff"debug.anomalies_only"Tb4b4b4)
Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-else
Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap gap-3 items-center bg-white/50 dark:bg-zinc-800/50 p-3 rounded-lg border border-gray-200 dark:border-zinc-700"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"relative flex-1 min-w-[200px]"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"magnify" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4 text-gray-400" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3accessSearchTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"block w-full pl-10 pr-3 py-2 border border-gray-300 dark:border-zinc-600 rounded-md leading-5 bg-white dark:bg-zinc-900 text-gray-900 dark:text-white placeholder-gray-500 focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 sm:text-sm"
Tb4b4b4:Te6edf3placeholderTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'debug.search_access_placeholder'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3inputTff7b72=Ta5d6ff"Te6edf3debouncedAccessSearchTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72select
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3accessOutcomeTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"block pl-3 pr-10 py-2 text-base border-gray-300 dark:border-zinc-600 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm rounded-md bg-white dark:bg-zinc-900 text-gray-900 dark:text-white"
Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3refreshAccessAttemptsTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff""Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"debug.outcome_all"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"success"Tb4b4b4>successTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"failed_password"Tb4b4b4>failed_passwordTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"rate_limited"Tb4b4b4>rate_limitedTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"lockout"Tb4b4b4>lockoutTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"invalid_json"Tb4b4b4>invalid_jsonTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"auth_not_setup"Tb4b4b4>auth_not_setupTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"password_required"Tb4b4b4>password_requiredTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"weak_password"Tb4b4b4>weak_passwordTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"setup_already_done"Tb4b4b4>setup_already_doneTb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72selectTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-hidden glass-card max-w-6xl mx-auto w-full p-0 flex flex-col rounded-sm"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72=== Ta5d6ff'logs'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-auto p-4 font-mono text-[10px] sm:text-xs leading-relaxed select-text bg-white dark:bg-zinc-950"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3logsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"text-gray-500 italic text-center py-10"Tb4b4b4>
Tff7b72{{ Te6edf3loading Tff7b72? Te6edf3$tTb4b4b4(Ta5d6ff"debug.loading_logs"Tb4b4b4) Tff7b72: Te6edf3$tTb4b4b4(Ta5d6ff"debug.no_logs"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-forTff7b72=Ta5d6ff"Tb4b4b4(Te6edf3logTb4b4b4, Te6edf3indexTb4b4b4) Tff7b72in Te6edf3logsTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3indexTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"border-b border-gray-100 dark:border-zinc-900 py-1 flex gap-3 hover:bg-gray-50 dark:hover:bg-zinc-900/50"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Tb4b4b4{ Ta5d6ff'bg-red-50/30 dark:bg-red-900/10'Tff7b72: Te6edf3logTb4b4b4.Te6edf3is_anomaly Tb4b4b4}Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-gray-400 shrink-0"Tb4b4b4>Tff7b72{{ Te6edf3formatTimeTb4b4b4(Te6edf3logTb4b4b4.Te6edf3timestampTb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Te6edf3levelClassTb4b4b4(Te6edf3logTb4b4b4.Te6edf3levelTb4b4b4)Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"w-12 shrink-0 font-bold uppercase"Tb4b4b4>Tff7b72{{
Te6edf3logTb4b4b4.Te6edf3level
Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-blue-500 shrink-0 w-24 overflow-hidden text-ellipsis italic"
Tb4b4b4>[Tff7b72{{ Te6edf3logTb4b4b4.Te6edf3module Tff7b72}}]Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-gray-800 dark:text-gray-200 break-words flex-1"Tb4b4b4>
Tff7b72{{ Te6edf3logTb4b4b4.Te6edf3message Tff7b72}}
Tb4b4b4<Tff7b72span
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3logTb4b4b4.Te6edf3is_anomalyTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"ml-2 inline-flex items-center px-1.5 py-0.5 rounded-full text-[8px] font-medium bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200 uppercase"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"alert-circle" Te6edf3classTff7b72=Ta5d6ff"w-2.5 h-2.5 mr-1" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3logTb4b4b4.Te6edf3anomaly_type Tff7b72|| Ta5d6ff"anomaly" Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-else
Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-auto p-4 font-mono text-[10px] sm:text-xs leading-relaxed select-text bg-white dark:bg-zinc-950"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3accessAttemptsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"text-gray-500 italic text-center py-10"Tb4b4b4>
Tff7b72{{ Te6edf3accessLoading Tff7b72? Te6edf3$tTb4b4b4(Ta5d6ff"debug.loading_access"Tb4b4b4) Tff7b72: Te6edf3$tTb4b4b4(Ta5d6ff"debug.no_access"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3row Tff7b72in Te6edf3accessAttemptsTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3rowTb4b4b4.Te6edf3idTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"border-b border-gray-100 dark:border-zinc-900 py-2 flex flex-col gap-1 hover:bg-gray-50 dark:hover:bg-zinc-900/50"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap gap-x-3 gap-y-1"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-gray-400 shrink-0"Tb4b4b4>Tff7b72{{ Te6edf3formatTimeTb4b4b4(Te6edf3rowTb4b4b4.Te6edf3created_atTb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-amber-600 dark:text-amber-400 font-semibold"Tb4b4b4>Tff7b72{{ Te6edf3rowTb4b4b4.Te6edf3outcome Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-cyan-600 dark:text-cyan-400"Tb4b4b4>Tff7b72{{ Te6edf3rowTb4b4b4.Te6edf3method Tff7b72}} Tff7b72{{ Te6edf3rowTb4b4b4.Te6edf3path Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-gray-600 dark:text-gray-400 break-all pl-0"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-gray-500"Tb4b4b4>IPTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4> Tff7b72{{ Te6edf3rowTb4b4b4.Te6edf3client_ip Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-gray-600 dark:text-gray-400 break-all"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-gray-500"Tb4b4b4>UATb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4> Tff7b72{{ Te6edf3rowTb4b4b4.Te6edf3user_agent Tff7b72|| Ta5d6ff"—" Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3rowTb4b4b4.Te6edf3detailTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"text-gray-500 text-[10px]"Tb4b4b4>Tff7b72{{ Te6edf3rowTb4b4b4.Te6edf3detail Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"px-4 py-3 flex items-center justify-between border-t border-gray-200 dark:border-zinc-800 bg-gray-50 dark:bg-zinc-900/50"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 flex justify-between sm:hidden"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 disabled:opacity-50"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3listOffset Tff7b72=== T79c0ff0Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3prevPageTa5d6ff"
Tb4b4b4>
Previous
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"ml-3 relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 disabled:opacity-50"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3listOffset Tff7b72+ Te6edf3limit Tff7b72>= Te6edf3listTotalTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3nextPageTa5d6ff"
Tb4b4b4>
Next
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"hidden sm:flex-1 sm:flex sm:items-center sm:justify-between"Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-700 dark:text-gray-400 font-mono"Tb4b4b4>
Showing
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"font-bold"Tb4b4b4>Tff7b72{{ Te6edf3listTotal Tff7b72=== T79c0ff0 Tff7b72? T79c0ff0 Tff7b72: Te6edf3listOffset Tff7b72+ T79c0ff1 Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
to
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"font-bold"Tb4b4b4>Tff7b72{{ Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3listOffset Tff7b72+ Te6edf3limitTb4b4b4, Te6edf3listTotalTb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
of
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"font-bold"Tb4b4b4>Tff7b72{{ Te6edf3listTotal Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
results
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"secondary-chip px-3 py-1 text-xs disabled:opacity-50"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3listOffset Tff7b72=== T79c0ff0Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3prevPageTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"chevron-left" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Previous
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"secondary-chip px-3 py-1 text-xs disabled:opacity-50"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3listOffset Tff7b72+ Te6edf3limit Tff7b72>= Te6edf3listTotalTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3nextPageTa5d6ff"
Tb4b4b4>
Next
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"chevron-right" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"DebugLogsPage"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3MaterialDesignIconTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3activeTabTff7b72: Ta5d6ff"logs"Tb4b4b4,
Te6edf3logsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3totalTff7b72: T79c0ff0Tb4b4b4,
Te6edf3limitTff7b72: T79c0ff100Tb4b4b4,
Te6edf3offsetTff7b72: T79c0ff0Tb4b4b4,
Te6edf3searchTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3levelTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3is_anomalyTff7b72: Tff7b72falseTb4b4b4,
Te6edf3loadingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3updateIntervalTff7b72: Tff7b72nullTb4b4b4,
Te6edf3searchTimeoutTff7b72: Tff7b72nullTb4b4b4,
Te6edf3accessAttemptsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3accessTotalTff7b72: T79c0ff0Tb4b4b4,
Te6edf3accessOffsetTff7b72: T79c0ff0Tb4b4b4,
Te6edf3accessSearchTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3accessOutcomeTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3accessLoadingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3accessSearchTimeoutTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTff7b72: Tb4b4b4{
Te6edf3listOffsetTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72=== Ta5d6ff"logs" Tff7b72? Tff7b72thisTb4b4b4.Te6edf3offset Tff7b72: Tff7b72thisTb4b4b4.Te6edf3accessOffsetTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3listTotalTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72=== Ta5d6ff"logs" Tff7b72? Tff7b72thisTb4b4b4.Te6edf3total Tff7b72: Tff7b72thisTb4b4b4.Te6edf3accessTotalTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3refreshLogsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3updateInterval Tff7b72= Te6edf3setIntervalTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72!== Ta5d6ff"logs"Tb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3offset Tff7b72=== T79c0ff0 Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3search Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3is_anomaly Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3levelTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3refreshLogsTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4, T79c0ff5000Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3beforeUnmountTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3updateIntervalTb4b4b4) Tb4b4b4{
Te6edf3clearIntervalTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3updateIntervalTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3searchTimeoutTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3searchTimeoutTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3accessSearchTimeoutTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3accessSearchTimeoutTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Te6edf3switchTabTb4b4b4(Te6edf3tabTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72= Te6edf3tabTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3tab Tff7b72=== Ta5d6ff"access" Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3accessAttemptsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0 Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3accessLoadingTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3refreshAccessAttemptsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3refreshActiveTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72=== Ta5d6ff"logs"Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3refreshLogsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72else Tff7b72thisTb4b4b4.Te6edf3refreshAccessAttemptsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3refreshLogsTb4b4b4(Te6edf3silent Tff7b72= Tff7b72falseTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3silentTb4b4b4) Tff7b72thisTb4b4b4.Te6edf3loading Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3params Tff7b72= Tb4b4b4{
Te6edf3limitTff7b72: Tff7b72thisTb4b4b4.Te6edf3limitTb4b4b4,
Te6edf3offsetTff7b72: Tff7b72thisTb4b4b4.Te6edf3offsetTb4b4b4,
Te6edf3searchTff7b72: Tff7b72thisTb4b4b4.Te6edf3search Tff7b72|| Tff7b72undefinedTb4b4b4,
Te6edf3levelTff7b72: Tff7b72thisTb4b4b4.Te6edf3level Tff7b72|| Tff7b72undefinedTb4b4b4,
Te6edf3is_anomalyTff7b72: Tff7b72thisTb4b4b4.Te6edf3is_anomaly Tff7b72? Tff7b72true Tff7b72: Tff7b72undefinedTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/debug/logs"Tb4b4b4, Tb4b4b4{ Te6edf3params Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3logs Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3logsTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3total Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3totalTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Ta5d6ff"Failed to fetch logs"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3silentTb4b4b4) Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"debug.failed_fetch_logs"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3silentTb4b4b4) Tff7b72thisTb4b4b4.Te6edf3loading Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3refreshAccessAttemptsTb4b4b4(Te6edf3silent Tff7b72= Tff7b72falseTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3silentTb4b4b4) Tff7b72thisTb4b4b4.Te6edf3accessLoading Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3params Tff7b72= Tb4b4b4{
Te6edf3limitTff7b72: Tff7b72thisTb4b4b4.Te6edf3limitTb4b4b4,
Te6edf3offsetTff7b72: Tff7b72thisTb4b4b4.Te6edf3accessOffsetTb4b4b4,
Te6edf3searchTff7b72: Tff7b72thisTb4b4b4.Te6edf3accessSearch Tff7b72|| Tff7b72undefinedTb4b4b4,
Te6edf3outcomeTff7b72: Tff7b72thisTb4b4b4.Te6edf3accessOutcome Tff7b72|| Tff7b72undefinedTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/debug/access-attempts"Tb4b4b4, Tb4b4b4{ Te6edf3params Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3accessAttempts Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3attemptsTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3accessTotal Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3totalTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Ta5d6ff"Failed to fetch access attempts"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3silentTb4b4b4) Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"debug.failed_fetch_access"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3silentTb4b4b4) Tff7b72thisTb4b4b4.Te6edf3accessLoading Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3debouncedSearchTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3searchTimeoutTb4b4b4) Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3searchTimeoutTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3searchTimeout Tff7b72= Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3offset Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshLogsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff500Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3debouncedAccessSearchTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3accessSearchTimeoutTb4b4b4) Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3accessSearchTimeoutTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3accessSearchTimeout Tff7b72= Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3accessOffset Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshAccessAttemptsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff500Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3prevPageTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72=== Ta5d6ff"logs"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3offset Tff7b72>= Tff7b72thisTb4b4b4.Te6edf3limitTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3offset Tff7b72-= Tff7b72thisTb4b4b4.Te6edf3limitTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshLogsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3accessOffset Tff7b72>= Tff7b72thisTb4b4b4.Te6edf3limitTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3accessOffset Tff7b72-= Tff7b72thisTb4b4b4.Te6edf3limitTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshAccessAttemptsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3nextPageTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72=== Ta5d6ff"logs"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3offset Tff7b72+ Tff7b72thisTb4b4b4.Te6edf3limit Tff7b72< Tff7b72thisTb4b4b4.Te6edf3totalTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3offset Tff7b72+= Tff7b72thisTb4b4b4.Te6edf3limitTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshLogsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3accessOffset Tff7b72+ Tff7b72thisTb4b4b4.Te6edf3limit Tff7b72< Tff7b72thisTb4b4b4.Te6edf3accessTotalTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3accessOffset Tff7b72+= Tff7b72thisTb4b4b4.Te6edf3limitTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshAccessAttemptsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3formatTimeTb4b4b4(Te6edf3timestampTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3ts Tff7b72= Tff7b72typeof Te6edf3timestamp Tff7b72=== Ta5d6ff"number" Tff7b72? Te6edf3timestamp Tff7b72* T79c0ff1000 Tff7b72: Te6edf3timestampTb4b4b4;
Tff7b72const Te6edf3date Tff7b72= Tff7b72new Tffa657DateTb4b4b4(Te6edf3tsTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3dateTb4b4b4.Te6edf3toLocaleStringTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Te6edf3timestampTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3levelClassTb4b4b4(Te6edf3levelTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3l Tff7b72= Te6edf3levelTb4b4b4.Te6edf3toUpperCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3l Tff7b72=== Ta5d6ff"ERROR" Tff7b72|| Te6edf3l Tff7b72=== Ta5d6ff"CRITICAL"Tb4b4b4) Tff7b72return Ta5d6ff"text-red-500"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3l Tff7b72=== Ta5d6ff"WARNING"Tb4b4b4) Tff7b72return Ta5d6ff"text-orange-500"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3l Tff7b72=== Ta5d6ff"INFO"Tb4b4b4) Tff7b72return Ta5d6ff"text-blue-500"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3l Tff7b72=== Ta5d6ff"DEBUG"Tb4b4b4) Tff7b72return Ta5d6ff"text-gray-500"Tb4b4b4;
Tff7b72return Ta5d6ff"text-gray-400"Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3copyActiveTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72=== Ta5d6ff"logs"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3logText Tff7b72= Tff7b72thisTb4b4b4.Te6edf3logs
Tb4b4b4.Te6edf3mapTb4b4b4(
Tb4b4b4(Te6edf3lTb4b4b4) Tb4b4b4=>
Ta5d6ff`Tffd700${Tff7b72thisTb4b4b4.Te6edf3formatTimeTb4b4b4(Te6edf3lTb4b4b4.Te6edf3timestampTb4b4b4)Tffd700}Ta5d6ff [Tffd700${Te6edf3lTb4b4b4.Te6edf3levelTffd700}Ta5d6ff] [Tffd700${Te6edf3lTb4b4b4.Te6edf3moduleTffd700}Ta5d6ff] Tffd700${Te6edf3lTb4b4b4.Te6edf3messageTffd700}Tffd700${Te6edf3lTb4b4b4.Te6edf3is_anomaly Tff7b72? Ta5d6ff" [ANOMALY:" Tff7b72+ Te6edf3lTb4b4b4.Te6edf3anomaly_type Tff7b72+ Ta5d6ff"]" Tff7b72: Ta5d6ff""Tffd700}Ta5d6ff`
Tb4b4b4)
Tb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff"\n"Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72await Te6edf3navigatorTb4b4b4.Te6edf3clipboardTb4b4b4.Te6edf3writeTextTb4b4b4(Te6edf3logTextTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"debug.logs_copied"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"debug.failed_copy_logs"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72const Te6edf3lines Tff7b72= Tff7b72thisTb4b4b4.Te6edf3accessAttemptsTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3rTb4b4b4) Tb4b4b4=>
Tb4b4b4[
Tff7b72thisTb4b4b4.Te6edf3formatTimeTb4b4b4(Te6edf3rTb4b4b4.Te6edf3created_atTb4b4b4)Tb4b4b4,
Te6edf3rTb4b4b4.Te6edf3outcomeTb4b4b4,
Te6edf3rTb4b4b4.Te6edf3methodTb4b4b4,
Te6edf3rTb4b4b4.Te6edf3pathTb4b4b4,
Te6edf3rTb4b4b4.Te6edf3client_ipTb4b4b4,
Te6edf3rTb4b4b4.Te6edf3user_agent Tff7b72|| Ta5d6ff""Tb4b4b4,
Te6edf3rTb4b4b4.Te6edf3detail Tff7b72|| Ta5d6ff""Tb4b4b4,
Tb4b4b4]Tb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff" | "Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72await Te6edf3navigatorTb4b4b4.Te6edf3clipboardTb4b4b4.Te6edf3writeTextTb4b4b4(Te6edf3linesTb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff"\n"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"debug.access_copied"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"debug.failed_copy_access"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tff7b72style Te6edf3scopedTb4b4b4>
Tb4b4b4.T56d364glass-card Tb4b4b4{
Tff7b72border-radiusTb4b4b4: T79c0ff2Tffa657px Tff7b72!importantTb4b4b4;
Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72styleTb4b4b4>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────